查看原文
其他

每天学一个 Linux 命令(101):pstree

点击关注👉 民工哥技术之路 2021-12-16

点击下方“民工哥技术之路”,选择“设为星标”

回复“1024”获取独家整理的学习资料!

命令简介

pstree 命令以树状图的方式展现进程之间的派生关系。

[root@centos7 ~]# pstree
-bash: pstree: command not found
[root@centos7 ~]# yum install psmisc -y

语法格式

pstree [OPTIONS] 

选项说明

-a  #显示每个程序的完整指令
-c  #不使用精简标示法
-G  #使用VT100终端机的列绘图字符
-h  #列出树状图时,特别标明现在执行的程序
-H<程序识别码>  #此参数的效果和指定"-h"参数类似
-l  #采用长列格式显示树状图
-n  #用程序识别码排序
-p  #显示程序识别码
-u  #显示用户名称
-U  #使用UTF-8列绘图字符
-V  #显示版本信息

应用举例

[root@centos7 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─sshd───bash─┬─gzip
        │      │             ├─more
        │      │             └─pstree
        │      └─sshd───bash
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]

显示系统当前所有进程的进程ID和进程号

[root@centos7 ~]# pstree -p
systemd(1)─┬─NetworkManager(634)─┬─{NetworkManager}(656)
           │                     └─{NetworkManager}(658)
           ├─agetty(643)
           ├─auditd(600)───{auditd}(601)
           ├─chronyd(646)
           ├─crond(638)
           ├─dbus-daemon(626)
           ├─lvmetad(503)
           ├─master(972)─┬─pickup(5692)
           │             └─qmgr(974)
           ├─polkitd(623)─┬─{polkitd}(633)
           │              ├─{polkitd}(636)
           │              ├─{polkitd}(637)
           │              ├─{polkitd}(641)
           │              ├─{polkitd}(647)
           │              └─{polkitd}(651)
           ├─rsyslogd(870)─┬─{rsyslogd}(897)
           │               └─{rsyslogd}(898)
           ├─sshd(868)─┬─sshd(5304)───bash(5306)─┬─gzip(5328)
           │           │                         ├─more(5329)
           │           │                         └─pstree(6204)
           │           └─sshd(5546)───bash(5548)
           ├─systemd-journal(484)
           ├─systemd-logind(635)
           ├─systemd-udevd(509)
           └─tuned(872)─┬─{tuned}(1131)
                        ├─{tuned}(1132)
                        ├─{tuned}(1134)
                        └─{tuned}(1138)

显示所有进程的详细信息,相同的进程名可以压缩显示

[root@centos7 ~]# pstree -a
systemd --switched-root --system --deserialize 22
  ├─NetworkManager --no-daemon
  │   └─2*[{NetworkManager}]
  ├─agetty --noclear tty1 linux
  ├─auditd
  │   └─{auditd}
  ├─chronyd
  ├─crond -n
  ├─dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
  ├─lvmetad -f
  ├─master -w
  │   ├─pickup -l -t unix -u
  │   └─qmgr -l -t unix -u
  ├─polkitd --no-debug
  │   └─6*[{polkitd}]
  ├─rsyslogd -n
  │   └─2*[{rsyslogd}]
  ├─sshd -D
  │   ├─sshd
  │   │   └─bash
  │   │       ├─gzip -cd mysql_backup.tar.gz
  │   │       ├─more
  │   │       └─pstree -a
  │   └─sshd
  │       └─bash
  ├─systemd-journal
  ├─systemd-logind
  ├─systemd-udevd
  └─tuned -Es /usr/sbin/tuned -l -P
      └─4*[{tuned}]

查看指定进程的PID

[root@centos7 ~]# pstree -p | grep ssh
           |-sshd(868)-+-sshd(5304)---bash(5306)-+-grep(6325)
           |           `-sshd(5546)---bash(5548)
[root@centos7 ~]# pstree -p | grep system
systemd(1)-+-NetworkManager(634)-+-{NetworkManager}(656)
           |-systemd-journal(484)
           |-systemd-logind(635)
           |-systemd-udevd(509)

每天学一个 Linux 命令(98):crontab

每天学一个 Linux 命令(99):nohup

每天学一个 Linux 命令(100):iotop

推荐阅读 点击标题可跳转

实用!这 11 个 Git 使用技巧,个个惊艳

武汉最最最牛逼的 IT 公司全在这了

牛逼!一款可实现安全、自动化跨网络访问的神器

全网最新、最详细的无坑部署最小化 K8S 集群教程

技术公司与非技术公司的区别,太真实了…

重磅!华为突发巨变

CTO说了,再发现谁用kill -9关闭程序就开除

精心整理!面试必问的 kafka 知识点

MySQL 与 PostgreSQL 比较,哪个更好、用哪个?

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存